<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Railway Operation Simulator: TOnePrefDir Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="railway-logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Railway Operation Simulator
   &#160;<span id="projectnumber">v2.23.2</span>
   </div>
   <div id="projectbrief">A railway simulator for Windows</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('class_t_one_pref_dir.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="class_t_one_pref_dir-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">TOnePrefDir Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>The basic preferred direction class, consisting of any number of elements with preferred directions set. Used during setting up preferred directions and track lengths (ConstructPrefDir), and for all completed preferred directions in the railway (EveryPrefDir)  
 <a href="class_t_one_pref_dir.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for TOnePrefDir:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 0 -->
</div>
</div>
<div class="dynheader">
Collaboration diagram for TOnePrefDir:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir__coll__graph.svg" width="243" height="558"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a940ba2bdbedb288c8188c1da5c4c79bc"><td class="memItemLeft" align="right" valign="top">typedef std::multimap&lt; <a class="el" href="_track_unit_8h.html#a524d48fe8a394092b35867930a7cd2af">THVPair</a>, unsigned int, <a class="el" href="class_t_map_comp.html">TMapComp</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a940ba2bdbedb288c8188c1da5c4c79bc">TPrefDir4MultiMap</a></td></tr>
<tr class="memdesc:a940ba2bdbedb288c8188c1da5c4c79bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">HLoc&amp;VLoc as a pair, and PrefDirVectorPosition, can be up to 4 values at any H&amp;V.  <a href="class_t_one_pref_dir.html#a940ba2bdbedb288c8188c1da5c4c79bc">More...</a><br /></td></tr>
<tr class="separator:a940ba2bdbedb288c8188c1da5c4c79bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37efac41fc00465b0569704517233d4e"><td class="memItemLeft" align="right" valign="top">typedef std::multimap&lt; <a class="el" href="_track_unit_8h.html#a524d48fe8a394092b35867930a7cd2af">THVPair</a>, unsigned int, <a class="el" href="class_t_map_comp.html">TMapComp</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a37efac41fc00465b0569704517233d4e">TPrefDir4MultiMapIterator</a></td></tr>
<tr class="separator:a37efac41fc00465b0569704517233d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05da09493d511df74b8e5b9a794c2e0b"><td class="memItemLeft" align="right" valign="top">typedef std::pair&lt; <a class="el" href="_track_unit_8h.html#a524d48fe8a394092b35867930a7cd2af">THVPair</a>, unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a05da09493d511df74b8e5b9a794c2e0b">TPrefDir4MultiMapEntry</a></td></tr>
<tr class="separator:a05da09493d511df74b8e5b9a794c2e0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a905cfdce2439be93d45b66339b7382"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a8a905cfdce2439be93d45b66339b7382">TPrefDirVectorIterator</a></td></tr>
<tr class="separator:a8a905cfdce2439be93d45b66339b7382"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53624ed7b429b42aa57cfe5551f5df71"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &gt;::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a53624ed7b429b42aa57cfe5551f5df71">TPrefDirVectorConstIterator</a></td></tr>
<tr class="separator:a53624ed7b429b42aa57cfe5551f5df71"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a29d013bf730e23d27fdb2c390e3a14da"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a29d013bf730e23d27fdb2c390e3a14da">PrefDirSize</a> () const</td></tr>
<tr class="memdesc:a29d013bf730e23d27fdb2c390e3a14da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the vector size.  <a href="class_t_one_pref_dir.html#a29d013bf730e23d27fdb2c390e3a14da">More...</a><br /></td></tr>
<tr class="separator:a29d013bf730e23d27fdb2c390e3a14da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a7fb4b5ae1ed73c9a989d21980d5b54"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a7a7fb4b5ae1ed73c9a989d21980d5b54">SearchVectorSize</a> () const</td></tr>
<tr class="memdesc:a7a7fb4b5ae1ed73c9a989d21980d5b54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the vector size.  <a href="class_t_one_pref_dir.html#a7a7fb4b5ae1ed73c9a989d21980d5b54">More...</a><br /></td></tr>
<tr class="separator:a7a7fb4b5ae1ed73c9a989d21980d5b54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc09de3c32460a73d3de12625329210d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#abc09de3c32460a73d3de12625329210d">ExternalClearPrefDirAnd4MultiMap</a> ()</td></tr>
<tr class="memdesc:abc09de3c32460a73d3de12625329210d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty the existing preferred direction vector &amp; map - for use by other classes.  <a href="class_t_one_pref_dir.html#abc09de3c32460a73d3de12625329210d">More...</a><br /></td></tr>
<tr class="separator:abc09de3c32460a73d3de12625329210d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6430567fea2e1538448514903c1b2eca"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a6430567fea2e1538448514903c1b2eca">BiDirectionalPrefDir</a> (int Caller, <a class="el" href="class_t_one_pref_dir.html#a37efac41fc00465b0569704517233d4e">TPrefDir4MultiMapIterator</a> PDPtr)</td></tr>
<tr class="memdesc:a6430567fea2e1538448514903c1b2eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether the preferred direction pointed to has another pref dir in the opposite direction set (returns true) or not.  <a href="class_t_one_pref_dir.html#a6430567fea2e1538448514903c1b2eca">More...</a><br /></td></tr>
<tr class="separator:a6430567fea2e1538448514903c1b2eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1896affce3465b84cfd5128cca122639"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a1896affce3465b84cfd5128cca122639">CheckOnePrefDir</a> (int Caller, int NumberOfActiveElements, std::ifstream &amp;VecFile)</td></tr>
<tr class="memdesc:a1896affce3465b84cfd5128cca122639"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called before PrefDir loading as part of the FileIntegrityCheck function in case there is an error in the file. Very similar to LoadPrefDir but with value checks instead of storage in PrefDirVector.  <a href="class_t_one_pref_dir.html#a1896affce3465b84cfd5128cca122639">More...</a><br /></td></tr>
<tr class="separator:a1896affce3465b84cfd5128cca122639"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b81a1377e6269aafad6c25c929b2852"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a7b81a1377e6269aafad6c25c929b2852">EndPossible</a> (int Caller, bool &amp;LeadingPoints)</td></tr>
<tr class="memdesc:a7b81a1377e6269aafad6c25c929b2852"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when setting preferred directions, true if able to finish at the last selected element (can't finish if there is only one element or if end on leading points)  <a href="class_t_one_pref_dir.html#a7b81a1377e6269aafad6c25c929b2852">More...</a><br /></td></tr>
<tr class="separator:a7b81a1377e6269aafad6c25c929b2852"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe7f6088b7563714522882c10f6ae7f6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#abe7f6088b7563714522882c10f6ae7f6">FindLinkingPrefDir</a> (int Caller, int PrefDirVectorNumber, int LinkNumberPos, int LinkNumber, int &amp;LinkedPrefDirVectorNumber)</td></tr>
<tr class="memdesc:abe7f6088b7563714522882c10f6ae7f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a pref dir element that links to another element at given vector number and link number &amp; position, returns true if found with linked vector number, true if buffer or continuation with link at blank end &amp; linked vector number = -1, or false if not found with vector number == -1.  <a href="class_t_one_pref_dir.html#abe7f6088b7563714522882c10f6ae7f6">More...</a><br /></td></tr>
<tr class="separator:abe7f6088b7563714522882c10f6ae7f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54e50116bec37610fcb000bc21189471"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a54e50116bec37610fcb000bc21189471">FindLinkingCompatiblePrefDir</a> (int Caller, int PrefDirVectorNumber, int LinkNumberPos, int LinkNumber, int &amp;LinkedPrefDirVectorNumber)</td></tr>
<tr class="memdesc:a54e50116bec37610fcb000bc21189471"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a pref dir element that is compatible and links to another element at given vector number and link number &amp; position, returns true if found with linked vector number, true if buffer or continuation with link at blank end &amp; linked vector number = -1, or false if not found with vector number == -1.  <a href="class_t_one_pref_dir.html#a54e50116bec37610fcb000bc21189471">More...</a><br /></td></tr>
<tr class="separator:a54e50116bec37610fcb000bc21189471"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06cd3491535362fccbba4e76b9a120e9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a06cd3491535362fccbba4e76b9a120e9">GetNextPrefDirElement</a> (int Caller, int HLoc, int VLoc, bool &amp;FinishElement)</td></tr>
<tr class="memdesc:a06cd3491535362fccbba4e76b9a120e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when continuing a chain of preferred directions or element lengths. Tries to find a set of linked tracks between the last selected element and the one at HLoc &amp; VLoc, and returns true if it finds one. FinishElement is returned true if the element selected is a buffer or continuation - in which case the chain is complete.  <a href="class_t_one_pref_dir.html#a06cd3491535362fccbba4e76b9a120e9">More...</a><br /></td></tr>
<tr class="separator:a06cd3491535362fccbba4e76b9a120e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0acdc81183b894d1d6aecb5f563efefc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a0acdc81183b894d1d6aecb5f563efefc">GetStartAndEndPrefDirElements</a> (int Caller, <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp;StartElement, <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp;EndElement, int &amp;LastIteratorValue)</td></tr>
<tr class="memdesc:a0acdc81183b894d1d6aecb5f563efefc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when searching for start and end PrefDirElements when setting up automatic signals routes in PreStart mode.  <a href="class_t_one_pref_dir.html#a0acdc81183b894d1d6aecb5f563efefc">More...</a><br /></td></tr>
<tr class="separator:a0acdc81183b894d1d6aecb5f563efefc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace0402792492c9da2551423f8287e41e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#ace0402792492c9da2551423f8287e41e">GetPrefDirStartElement</a> (int Caller, int HLoc, int VLoc)</td></tr>
<tr class="memdesc:ace0402792492c9da2551423f8287e41e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when beginning a chain of preferred directions or element lengths. Enter with HLoc &amp; VLoc set to selected element &amp; check if selected element is a valid track element, return false if not, if it is, store it as the first entry in PrefDirVector and return true.  <a href="class_t_one_pref_dir.html#ace0402792492c9da2551423f8287e41e">More...</a><br /></td></tr>
<tr class="separator:ace0402792492c9da2551423f8287e41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fd55282096fe63f0baeab323c6ccc8b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a8fd55282096fe63f0baeab323c6ccc8b">GetPrefDirTruncateElement</a> (int Caller, int HLoc, int VLoc)</td></tr>
<tr class="memdesc:a8fd55282096fe63f0baeab323c6ccc8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called during PrefDir build or distance setting. It truncates at &amp; including the first element in the PrefDir vector that matches H &amp; V. After the truncate the final element of the remaining PrefDir has its data members reset to the same defaults as would be the case if the PrefDir had been built up to that point - i.e. for first element or a leading point.  <a href="class_t_one_pref_dir.html#a8fd55282096fe63f0baeab323c6ccc8b">More...</a><br /></td></tr>
<tr class="separator:a8fd55282096fe63f0baeab323c6ccc8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b883633382e26cdff4583a24575d337"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a2b883633382e26cdff4583a24575d337">ValidatePrefDir</a> (int Caller)</td></tr>
<tr class="memdesc:a2b883633382e26cdff4583a24575d337"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks that all elements in PrefDirVector have been properly set, i.e. don't have their default values, and that every element is connected to the next element.  <a href="class_t_one_pref_dir.html#a2b883633382e26cdff4583a24575d337">More...</a><br /></td></tr>
<tr class="separator:a2b883633382e26cdff4583a24575d337"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26a1ee9d1ced0d53e35936097d4896f0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a26a1ee9d1ced0d53e35936097d4896f0">LastElementNumber</a> (int Caller) const</td></tr>
<tr class="memdesc:a26a1ee9d1ced0d53e35936097d4896f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the vector position of the last element in the vector (i.e. one less than the vector size)  <a href="class_t_one_pref_dir.html#a26a1ee9d1ced0d53e35936097d4896f0">More...</a><br /></td></tr>
<tr class="separator:a26a1ee9d1ced0d53e35936097d4896f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42862b2abcd0eb356982f4ce46922922"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t_one_pref_dir.html#a8a905cfdce2439be93d45b66339b7382">TPrefDirVectorIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a42862b2abcd0eb356982f4ce46922922">LastElementPtr</a> (int Caller)</td></tr>
<tr class="memdesc:a42862b2abcd0eb356982f4ce46922922"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the last element in the vector.  <a href="class_t_one_pref_dir.html#a42862b2abcd0eb356982f4ce46922922">More...</a><br /></td></tr>
<tr class="separator:a42862b2abcd0eb356982f4ce46922922"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b67e5aaa86d324229aedc68f32f32b8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a5b67e5aaa86d324229aedc68f32f32b8">GetFixedPrefDirElementAt</a> (int Caller, int At) const</td></tr>
<tr class="memdesc:a5b67e5aaa86d324229aedc68f32f32b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a non-modifiable element at PrefDirVector position 'At'.  <a href="class_t_one_pref_dir.html#a5b67e5aaa86d324229aedc68f32f32b8">More...</a><br /></td></tr>
<tr class="separator:a5b67e5aaa86d324229aedc68f32f32b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5a2c955fa9c2584c683accbacb15f4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#af5a2c955fa9c2584c683accbacb15f4c">GetModifiablePrefDirElementAt</a> (int Caller, int At)</td></tr>
<tr class="memdesc:af5a2c955fa9c2584c683accbacb15f4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a modifiable element at PrefDirVector position 'At'.  <a href="class_t_one_pref_dir.html#af5a2c955fa9c2584c683accbacb15f4c">More...</a><br /></td></tr>
<tr class="separator:af5a2c955fa9c2584c683accbacb15f4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11543812cef66a28f4747fb3f8f33f47"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a11543812cef66a28f4747fb3f8f33f47">GetFixedSearchElementAt</a> (int Caller, int At) const</td></tr>
<tr class="memdesc:a11543812cef66a28f4747fb3f8f33f47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a non-modifiable element at SearchVector position 'At'.  <a href="class_t_one_pref_dir.html#a11543812cef66a28f4747fb3f8f33f47">More...</a><br /></td></tr>
<tr class="separator:a11543812cef66a28f4747fb3f8f33f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6724a8304760eb6107bddc60a269595b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a6724a8304760eb6107bddc60a269595b">GetModifiableSearchElementAt</a> (int Caller, int At)</td></tr>
<tr class="memdesc:a6724a8304760eb6107bddc60a269595b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a modifiable element at SearchVector position 'At'.  <a href="class_t_one_pref_dir.html#a6724a8304760eb6107bddc60a269595b">More...</a><br /></td></tr>
<tr class="separator:a6724a8304760eb6107bddc60a269595b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abadb0c99b24d6dbfda371d96b308fc6e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#abadb0c99b24d6dbfda371d96b308fc6e">CalcDistanceAndSpeed</a> (int Caller, int &amp;OverallDistance, int &amp;OverallSpeedLimit, bool &amp;LeadingPointsAtLastElement)</td></tr>
<tr class="memdesc:abadb0c99b24d6dbfda371d96b308fc6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when setting element lengths, returns in &amp;OverallDistance the overall distance for the selected chain of elements and also the speed limit in &amp;OverallSpeedLimit, which is set to -1 if the speed limits vary over the chain.  <a href="class_t_one_pref_dir.html#abadb0c99b24d6dbfda371d96b308fc6e">More...</a><br /></td></tr>
<tr class="separator:abadb0c99b24d6dbfda371d96b308fc6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e8d14c19c70cafe968e7481b116a714"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a5e8d14c19c70cafe968e7481b116a714">ExternalStorePrefDirElement</a> (int Caller, <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> LoadPrefDirElement)</td></tr>
<tr class="memdesc:a5e8d14c19c70cafe968e7481b116a714"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a single pref dir element in the vector &amp; map - used by other classes.  <a href="class_t_one_pref_dir.html#a5e8d14c19c70cafe968e7481b116a714">More...</a><br /></td></tr>
<tr class="separator:a5e8d14c19c70cafe968e7481b116a714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a820f6cc109de519289e6a63dac835ebc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a820f6cc109de519289e6a63dac835ebc">GetVectorPositionsFromPrefDir4MultiMap</a> (int Caller, int HLoc, int VLoc, bool &amp;FoundFlag, int &amp;PrefDirPos0, int &amp;PrefDirPos1, int &amp;PrefDirPos2, int &amp;PrefDirPos3)</td></tr>
<tr class="memdesc:a820f6cc109de519289e6a63dac835ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return up to 4 vector positions for a given HLoc &amp; VLoc; unused values return -1.  <a href="class_t_one_pref_dir.html#a820f6cc109de519289e6a63dac835ebc">More...</a><br /></td></tr>
<tr class="separator:a820f6cc109de519289e6a63dac835ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a614933ff3958e4b8c9be9bc78159d9e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a614933ff3958e4b8c9be9bc78159d9e8">LoadOldPrefDir</a> (int Caller, std::ifstream &amp;VecFile)</td></tr>
<tr class="memdesc:a614933ff3958e4b8c9be9bc78159d9e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Old version of LoadPrefDir, used during development when the save format changed so the old files could be loaded prior to resaving in the new format.  <a href="class_t_one_pref_dir.html#a614933ff3958e4b8c9be9bc78159d9e8">More...</a><br /></td></tr>
<tr class="separator:a614933ff3958e4b8c9be9bc78159d9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0779c9edd1ba268356590aac4719166d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a0779c9edd1ba268356590aac4719166d">LoadPrefDir</a> (int Caller, std::ifstream &amp;VecFile)</td></tr>
<tr class="memdesc:a0779c9edd1ba268356590aac4719166d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a vector and map of preferred directions from the file.  <a href="class_t_one_pref_dir.html#a0779c9edd1ba268356590aac4719166d">More...</a><br /></td></tr>
<tr class="separator:a0779c9edd1ba268356590aac4719166d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef8388386635d73a921fae7ce43f5214"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#aef8388386635d73a921fae7ce43f5214">PrefDirMarker</a> (int Caller, <a class="el" href="_track_unit_8h.html#af43def3247611f36d741e6324ea85d14">TPrefDirRoute</a> PrefDirRoute, bool BuildingPrefDir, <a class="el" href="class_t_display.html">TDisplay</a> *Disp) const</td></tr>
<tr class="memdesc:aef8388386635d73a921fae7ce43f5214"><td class="mdescLeft">&#160;</td><td class="mdescRight">PrefDir and route track display function, including direction markers.  <a href="class_t_one_pref_dir.html#aef8388386635d73a921fae7ce43f5214">More...</a><br /></td></tr>
<tr class="separator:aef8388386635d73a921fae7ce43f5214"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d115535b2e2d2ea05e210997a3f525c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a3d115535b2e2d2ea05e210997a3f525c">SavePrefDirVector</a> (int Caller, std::ofstream &amp;VecFile)</td></tr>
<tr class="memdesc:a3d115535b2e2d2ea05e210997a3f525c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the preferred direction vector to a file.  <a href="class_t_one_pref_dir.html#a3d115535b2e2d2ea05e210997a3f525c">More...</a><br /></td></tr>
<tr class="separator:a3d115535b2e2d2ea05e210997a3f525c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8871c609a1586aa9c4f723afaccd2502"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a8871c609a1586aa9c4f723afaccd2502">SaveSearchVector</a> (int Caller, std::ofstream &amp;VecFile)</td></tr>
<tr class="memdesc:a8871c609a1586aa9c4f723afaccd2502"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the search vector to a file.  <a href="class_t_one_pref_dir.html#a8871c609a1586aa9c4f723afaccd2502">More...</a><br /></td></tr>
<tr class="separator:a8871c609a1586aa9c4f723afaccd2502"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af87440e0ace47b20c8a874c51b314064"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#af87440e0ace47b20c8a874c51b314064">WritePrefDirToImage</a> (int Caller, Graphics::TBitmap *Bitmap)</td></tr>
<tr class="memdesc:af87440e0ace47b20c8a874c51b314064"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when creating a bitmap image to display preferred directions (as on screen during 'Set preferred direction' mode)  <a href="class_t_one_pref_dir.html#af87440e0ace47b20c8a874c51b314064">More...</a><br /></td></tr>
<tr class="separator:af87440e0ace47b20c8a874c51b314064"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8c8ad293f45948986903a05302b2dc8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#ab8c8ad293f45948986903a05302b2dc8">CheckPrefDirAgainstTrackVectorNoMessage</a> (int Caller)</td></tr>
<tr class="memdesc:ab8c8ad293f45948986903a05302b2dc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check loaded PrefDir against loaded track, and if discrepancies found clear EveryPrefDir &amp; PrefDir4MultiMap, messages are given by the calling routine. Return true for OK.  <a href="class_t_one_pref_dir.html#ab8c8ad293f45948986903a05302b2dc8">More...</a><br /></td></tr>
<tr class="separator:ab8c8ad293f45948986903a05302b2dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab79dc3f93a471d2182ce625fcac1ff2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#ab79dc3f93a471d2182ce625fcac1ff2d">CheckPrefDirAgainstTrackVector</a> (int Caller)</td></tr>
<tr class="memdesc:ab79dc3f93a471d2182ce625fcac1ff2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check loaded PrefDir against loaded track, and if discrepancies found give message &amp; clear EveryPrefDir &amp; PrefDir4MultiMap.  <a href="class_t_one_pref_dir.html#ab79dc3f93a471d2182ce625fcac1ff2d">More...</a><br /></td></tr>
<tr class="separator:ab79dc3f93a471d2182ce625fcac1ff2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65df51092983945e1fe3c20bf8917a39"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a65df51092983945e1fe3c20bf8917a39">ConsolidatePrefDirs</a> (int Caller, <a class="el" href="class_t_one_pref_dir.html">TOnePrefDir</a> *InputPrefDir)</td></tr>
<tr class="memdesc:a65df51092983945e1fe3c20bf8917a39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when a preferred direction has been set to add all the elements to EveryPrefDir, except when they already exist in EveryPrefDir.  <a href="class_t_one_pref_dir.html#a65df51092983945e1fe3c20bf8917a39">More...</a><br /></td></tr>
<tr class="separator:a65df51092983945e1fe3c20bf8917a39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8042c0e2fd7f9e39c3ca2a7bff7c68a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a8042c0e2fd7f9e39c3ca2a7bff7c68a4">EraseFromPrefDirVectorAnd4MultiMap</a> (int Caller, int HLoc, int VLoc)</td></tr>
<tr class="memdesc:a8042c0e2fd7f9e39c3ca2a7bff7c68a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase element at HLoc and VLoc from the PrefDirVector and from the 4MultiMap. Note that this entails erasing up to four elements (2 directions and 2 tracks for 4-entry elements).  <a href="class_t_one_pref_dir.html#a8042c0e2fd7f9e39c3ca2a7bff7c68a4">More...</a><br /></td></tr>
<tr class="separator:a8042c0e2fd7f9e39c3ca2a7bff7c68a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b425a3ed8ef998e2366d13ad52bf08c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a9b425a3ed8ef998e2366d13ad52bf08c">EveryPrefDirMarker</a> (int Caller, <a class="el" href="class_t_display.html">TDisplay</a> *Disp)</td></tr>
<tr class="memdesc:a9b425a3ed8ef998e2366d13ad52bf08c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Similar to PrefDirMarker but used only to display EveryPrefDir - red for unidirectional PrefDir &amp; green for bidirectional. Colours taken from the route colours. Plot red first so green overwrites for bidirectional points.  <a href="class_t_one_pref_dir.html#a9b425a3ed8ef998e2366d13ad52bf08c">More...</a><br /></td></tr>
<tr class="separator:a9b425a3ed8ef998e2366d13ad52bf08c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5bb3791670fd04645faf4ab1f2a5781"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#ab5bb3791670fd04645faf4ab1f2a5781">RealignAfterTrackErase</a> (int Caller, int ErasedTrackVectorPosition)</td></tr>
<tr class="memdesc:ab5bb3791670fd04645faf4ab1f2a5781"><td class="mdescLeft">&#160;</td><td class="mdescRight">After a track element is erased the preferred direction elements are likely to be affected. This function erases any preferred direction elements that either correspond to the erased track element, or were linked to it.  <a href="class_t_one_pref_dir.html#ab5bb3791670fd04645faf4ab1f2a5781">More...</a><br /></td></tr>
<tr class="separator:ab5bb3791670fd04645faf4ab1f2a5781"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e62c2571d3629a067e1071086de72de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a1e62c2571d3629a067e1071086de72de">RebuildPrefDirVector</a> (int Caller)</td></tr>
<tr class="memdesc:a1e62c2571d3629a067e1071086de72de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called after the track vector has been rebuilt following linking, to rebuild the preferred direction vector to correspond to the element positions in the rebuilt track vector. Doesn't affect the preferred direction multimap.  <a href="class_t_one_pref_dir.html#a1e62c2571d3629a067e1071086de72de">More...</a><br /></td></tr>
<tr class="separator:a1e62c2571d3629a067e1071086de72de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:aa6738f8f24fe0a417a84388c049b5e4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t_one_pref_dir.html#a940ba2bdbedb288c8188c1da5c4c79bc">TPrefDir4MultiMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#aa6738f8f24fe0a417a84388c049b5e4c">PrefDir4MultiMap</a></td></tr>
<tr class="memdesc:aa6738f8f24fe0a417a84388c049b5e4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">the pref dir multimap - up to 4 values (up to 2 tracks per element each with 2 directions)  <a href="class_t_one_pref_dir.html#aa6738f8f24fe0a417a84388c049b5e4c">More...</a><br /></td></tr>
<tr class="separator:aa6738f8f24fe0a417a84388c049b5e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2da871d689df7e78f430c5d354bb953"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_track_unit_8h.html#a79394e04a2435f7300aad79c757ae2ce">TPrefDirVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#ab2da871d689df7e78f430c5d354bb953">PrefDirVector</a></td></tr>
<tr class="separator:ab2da871d689df7e78f430c5d354bb953"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d035366a044fc7d0e0a745762bd4664"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_track_unit_8h.html#a79394e04a2435f7300aad79c757ae2ce">TPrefDirVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a2d035366a044fc7d0e0a745762bd4664">SearchVector</a></td></tr>
<tr class="memdesc:a2d035366a044fc7d0e0a745762bd4664"><td class="mdescLeft">&#160;</td><td class="mdescRight">pref dir vectors, first is the main vector, second used to store search elements temporarily  <a href="class_t_one_pref_dir.html#a2d035366a044fc7d0e0a745762bd4664">More...</a><br /></td></tr>
<tr class="separator:a2d035366a044fc7d0e0a745762bd4664"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ae0e03d494164fe961da51b0be8492934"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#ae0e03d494164fe961da51b0be8492934">PresetAutoRouteDiagonalFouledByTrack</a> (int Caller, <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> ElementIn, int XLink)</td></tr>
<tr class="memdesc:ae0e03d494164fe961da51b0be8492934"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by GetStartAndEndPrefDirElements...  <a href="class_t_one_pref_dir.html#ae0e03d494164fe961da51b0be8492934">More...</a><br /></td></tr>
<tr class="separator:ae0e03d494164fe961da51b0be8492934"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab35c683ba0ec156d19d4db991046b7d2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#ab35c683ba0ec156d19d4db991046b7d2">PresetAutoRouteElementValid</a> (int Caller, <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> ElementIn, int EntryPos)</td></tr>
<tr class="memdesc:ab35c683ba0ec156d19d4db991046b7d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks ElementIn and returns true only if a single prefdir set at that H&amp;V, with EntryPos giving entry position, not points, crossovers, signals with wrong direction set, or buffers. Added at v1.2.0.  <a href="class_t_one_pref_dir.html#ab35c683ba0ec156d19d4db991046b7d2">More...</a><br /></td></tr>
<tr class="separator:ab35c683ba0ec156d19d4db991046b7d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82c6a19d67ada7059491afae05ced4a4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a82c6a19d67ada7059491afae05ced4a4">SearchForPrefDir</a> (int Caller, <a class="el" href="class_t_track_element.html">TTrackElement</a> TrackElement, int XLinkPos, int RequiredPosition)</td></tr>
<tr class="memdesc:a82c6a19d67ada7059491afae05ced4a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to find a selected element from a given start position. Enter with CurrentTrackElement stored in the PrefDirVector, XLinkPos set to the link to search on, &amp; SearchVector cleared unless entered recursively. Function is a continuous loop that exits when find required element (returns true) or reaches a buffer or continuation or otherwise fails a search condition (returns false).  <a href="class_t_one_pref_dir.html#a82c6a19d67ada7059491afae05ced4a4">More...</a><br /></td></tr>
<tr class="separator:a82c6a19d67ada7059491afae05ced4a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200fd1dc1cffc400160b8d2147278752"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a200fd1dc1cffc400160b8d2147278752">GetOnePrefDirPosition</a> (int Caller, int HLoc, int VLoc)</td></tr>
<tr class="memdesc:a200fd1dc1cffc400160b8d2147278752"><td class="mdescLeft">&#160;</td><td class="mdescRight">Although there may be up to four entries at one H &amp; V position this function gets just one. It is used in EraseFromPrefDirVectorAnd4MultiMap by being called as many times as there are PrefDir elements at H &amp; V.  <a href="class_t_one_pref_dir.html#a200fd1dc1cffc400160b8d2147278752">More...</a><br /></td></tr>
<tr class="separator:a200fd1dc1cffc400160b8d2147278752"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a482d1c69a674eec4db0190b78659c495"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a482d1c69a674eec4db0190b78659c495">ConvertPrefDirSearchVector</a> (int Caller)</td></tr>
<tr class="memdesc:a482d1c69a674eec4db0190b78659c495"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called after a successful search to add the elements from the search vector to the pref dir vector.  <a href="class_t_one_pref_dir.html#a482d1c69a674eec4db0190b78659c495">More...</a><br /></td></tr>
<tr class="separator:a482d1c69a674eec4db0190b78659c495"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:af33d48762fe2b104b75fca9a97d96252"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#af33d48762fe2b104b75fca9a97d96252">SearchLimitLowH</a></td></tr>
<tr class="separator:af33d48762fe2b104b75fca9a97d96252"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68677f0598c54c3e6e3c27075b23aa14"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a68677f0598c54c3e6e3c27075b23aa14">SearchLimitHighH</a></td></tr>
<tr class="separator:a68677f0598c54c3e6e3c27075b23aa14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa469479759bd4379bee3f938ad8bfd90"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#aa469479759bd4379bee3f938ad8bfd90">SearchLimitLowV</a></td></tr>
<tr class="separator:aa469479759bd4379bee3f938ad8bfd90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2665c08fe2a230db10ded6e78975bc13"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a2665c08fe2a230db10ded6e78975bc13">SearchLimitHighV</a></td></tr>
<tr class="separator:a2665c08fe2a230db10ded6e78975bc13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e982d8317ce1579b143adf74d88d692"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a8e982d8317ce1579b143adf74d88d692">TotalSearchCount</a></td></tr>
<tr class="memdesc:a8e982d8317ce1579b143adf74d88d692"><td class="mdescLeft">&#160;</td><td class="mdescRight">counts search elements, used to abort searches (prefdirs or routes) if reaches too high a value  <a href="class_t_one_pref_dir.html#a8e982d8317ce1579b143adf74d88d692">More...</a><br /></td></tr>
<tr class="separator:a8e982d8317ce1579b143adf74d88d692"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr class="memitem:a9fc8032fb9c525951620e7aafa067d45"><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a9fc8032fb9c525951620e7aafa067d45">PrefDirSearchLimit</a> = 30000</td></tr>
<tr class="memdesc:a9fc8032fb9c525951620e7aafa067d45"><td class="mdescLeft">&#160;</td><td class="mdescRight">limit to the number of elements searched in attempting to find a preferred direction  <a href="class_t_one_pref_dir.html#a9fc8032fb9c525951620e7aafa067d45">More...</a><br /></td></tr>
<tr class="separator:a9fc8032fb9c525951620e7aafa067d45"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ad2e6adb7b634b17cab9cd03610a0f8e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#ad2e6adb7b634b17cab9cd03610a0f8e3">ClearPrefDir</a> ()</td></tr>
<tr class="memdesc:ad2e6adb7b634b17cab9cd03610a0f8e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty the existing vectors &amp; map.  <a href="class_t_one_pref_dir.html#ad2e6adb7b634b17cab9cd03610a0f8e3">More...</a><br /></td></tr>
<tr class="separator:ad2e6adb7b634b17cab9cd03610a0f8e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bc65b139325c45b57a9f43a9b3404a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_t_one_pref_dir.html#a37efac41fc00465b0569704517233d4e">TPrefDir4MultiMapIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a8bc65b139325c45b57a9f43a9b3404a8">GetExactMatchFrom4MultiMap</a> (int Caller, unsigned int PrefDirVectorPosition, bool &amp;FoundFlag)</td></tr>
<tr class="memdesc:a8bc65b139325c45b57a9f43a9b3404a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves a PrefDir4MultiMap iterator to the PrefDir element at PrefDirVectorPosition. Used during ErasePrefDirElementAt to erase the relevant element in the multimap. If nothing is found this is an error but the error message is given in the calling function.  <a href="class_t_one_pref_dir.html#a8bc65b139325c45b57a9f43a9b3404a8">More...</a><br /></td></tr>
<tr class="separator:a8bc65b139325c45b57a9f43a9b3404a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5f8d2864f0510cf73cb9883b520ec9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#ac5f8d2864f0510cf73cb9883b520ec9f">StorePrefDirElement</a> (int Caller, <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> LoadPrefDirElement)</td></tr>
<tr class="memdesc:ac5f8d2864f0510cf73cb9883b520ec9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a single pref dir element in the vector &amp; map.  <a href="class_t_one_pref_dir.html#ac5f8d2864f0510cf73cb9883b520ec9f">More...</a><br /></td></tr>
<tr class="separator:ac5f8d2864f0510cf73cb9883b520ec9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa191ffa7fa23838043d34d9b02cd7bcb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#aa191ffa7fa23838043d34d9b02cd7bcb">ErasePrefDirElementAt</a> (int Caller, int PrefDirVectorPosition)</td></tr>
<tr class="memdesc:aa191ffa7fa23838043d34d9b02cd7bcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase a single element from PrefDirVector and 4MultiMap, decrementing the remaining PrefDirElementNumbers in 4MultiMap if they are greater than the erased value.  <a href="class_t_one_pref_dir.html#aa191ffa7fa23838043d34d9b02cd7bcb">More...</a><br /></td></tr>
<tr class="separator:aa191ffa7fa23838043d34d9b02cd7bcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a7ddf3981800ec0df1225c9e5aa52c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a8a7ddf3981800ec0df1225c9e5aa52c2">CheckPrefDir4MultiMap</a> (int Caller)</td></tr>
<tr class="memdesc:a8a7ddf3981800ec0df1225c9e5aa52c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diagnostic validity check.  <a href="class_t_one_pref_dir.html#a8a7ddf3981800ec0df1225c9e5aa52c2">More...</a><br /></td></tr>
<tr class="separator:a8a7ddf3981800ec0df1225c9e5aa52c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a056c475541b487ce13cb34dc43b1cf6f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_one_pref_dir.html#a056c475541b487ce13cb34dc43b1cf6f">DecrementPrefDirElementNumbersInPrefDir4MultiMap</a> (int Caller, unsigned int ErasedElementNumber)</td></tr>
<tr class="memdesc:a056c475541b487ce13cb34dc43b1cf6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called after ErasePrefDirElementAt to decrement the remaining PrefDirElementNumbers in 4MultiMap if they are greater than the erased value.  <a href="class_t_one_pref_dir.html#a056c475541b487ce13cb34dc43b1cf6f">More...</a><br /></td></tr>
<tr class="separator:a056c475541b487ce13cb34dc43b1cf6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The basic preferred direction class, consisting of any number of elements with preferred directions set. Used during setting up preferred directions and track lengths (ConstructPrefDir), and for all completed preferred directions in the railway (EveryPrefDir) </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01337">1337</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a940ba2bdbedb288c8188c1da5c4c79bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a940ba2bdbedb288c8188c1da5c4c79bc">&#9670;&nbsp;</a></span>TPrefDir4MultiMap</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::multimap&lt;<a class="el" href="_track_unit_8h.html#a524d48fe8a394092b35867930a7cd2af">THVPair</a>, unsigned int, <a class="el" href="class_t_map_comp.html">TMapComp</a>&gt; <a class="el" href="class_t_one_pref_dir.html#a940ba2bdbedb288c8188c1da5c4c79bc">TOnePrefDir::TPrefDir4MultiMap</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HLoc&amp;VLoc as a pair, and PrefDirVectorPosition, can be up to 4 values at any H&amp;V. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01341">1341</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="a05da09493d511df74b8e5b9a794c2e0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05da09493d511df74b8e5b9a794c2e0b">&#9670;&nbsp;</a></span>TPrefDir4MultiMapEntry</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::pair&lt;<a class="el" href="_track_unit_8h.html#a524d48fe8a394092b35867930a7cd2af">THVPair</a>, unsigned int&gt; <a class="el" href="class_t_one_pref_dir.html#a05da09493d511df74b8e5b9a794c2e0b">TOnePrefDir::TPrefDir4MultiMapEntry</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01344">1344</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="a37efac41fc00465b0569704517233d4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37efac41fc00465b0569704517233d4e">&#9670;&nbsp;</a></span>TPrefDir4MultiMapIterator</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::multimap&lt;<a class="el" href="_track_unit_8h.html#a524d48fe8a394092b35867930a7cd2af">THVPair</a>, unsigned int, <a class="el" href="class_t_map_comp.html">TMapComp</a>&gt;::iterator <a class="el" href="class_t_one_pref_dir.html#a37efac41fc00465b0569704517233d4e">TOnePrefDir::TPrefDir4MultiMapIterator</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01343">1343</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="a53624ed7b429b42aa57cfe5551f5df71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53624ed7b429b42aa57cfe5551f5df71">&#9670;&nbsp;</a></span>TPrefDirVectorConstIterator</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a>&gt;::const_iterator <a class="el" href="class_t_one_pref_dir.html#a53624ed7b429b42aa57cfe5551f5df71">TOnePrefDir::TPrefDirVectorConstIterator</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01412">1412</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="a8a905cfdce2439be93d45b66339b7382"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a905cfdce2439be93d45b66339b7382">&#9670;&nbsp;</a></span>TPrefDirVectorIterator</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a>&gt;::iterator <a class="el" href="class_t_one_pref_dir.html#a8a905cfdce2439be93d45b66339b7382">TOnePrefDir::TPrefDirVectorIterator</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01411">1411</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6430567fea2e1538448514903c1b2eca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6430567fea2e1538448514903c1b2eca">&#9670;&nbsp;</a></span>BiDirectionalPrefDir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::BiDirectionalPrefDir </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_one_pref_dir.html#a37efac41fc00465b0569704517233d4e">TPrefDir4MultiMapIterator</a>&#160;</td>
          <td class="paramname"><em>PDPtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines whether the preferred direction pointed to has another pref dir in the opposite direction set (returns true) or not. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14505">14505</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a6430567fea2e1538448514903c1b2eca_cgraph.svg" width="640" height="92"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a6430567fea2e1538448514903c1b2eca_icgraph.svg" width="395" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<a id="abadb0c99b24d6dbfda371d96b308fc6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abadb0c99b24d6dbfda371d96b308fc6e">&#9670;&nbsp;</a></span>CalcDistanceAndSpeed()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::CalcDistanceAndSpeed </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>OverallDistance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>OverallSpeedLimit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>LeadingPointsAtLastElement</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used when setting element lengths, returns in &amp;OverallDistance the overall distance for the selected chain of elements and also the speed limit in &amp;OverallSpeedLimit, which is set to -1 if the speed limits vary over the chain. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14802">14802</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_abadb0c99b24d6dbfda371d96b308fc6e_cgraph.svg" width="632" height="340"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_abadb0c99b24d6dbfda371d96b308fc6e_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a1896affce3465b84cfd5128cca122639"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1896affce3465b84cfd5128cca122639">&#9670;&nbsp;</a></span>CheckOnePrefDir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::CheckOnePrefDir </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>NumberOfActiveElements</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::ifstream &amp;&#160;</td>
          <td class="paramname"><em>VecFile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Called before PrefDir loading as part of the FileIntegrityCheck function in case there is an error in the file. Very similar to LoadPrefDir but with value checks instead of storage in PrefDirVector. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13733">13733</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a1896affce3465b84cfd5128cca122639_cgraph.svg" width="650" height="256"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a1896affce3465b84cfd5128cca122639_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a8a7ddf3981800ec0df1225c9e5aa52c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a7ddf3981800ec0df1225c9e5aa52c2">&#9670;&nbsp;</a></span>CheckPrefDir4MultiMap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::CheckPrefDir4MultiMap </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Diagnostic validity check. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14199">14199</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a8a7ddf3981800ec0df1225c9e5aa52c2_cgraph.svg" width="650" height="92"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 1 -->
</div>
</div>

</div>
</div>
<a id="ab79dc3f93a471d2182ce625fcac1ff2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab79dc3f93a471d2182ce625fcac1ff2d">&#9670;&nbsp;</a></span>CheckPrefDirAgainstTrackVector()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::CheckPrefDirAgainstTrackVector </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check loaded PrefDir against loaded track, and if discrepancies found give message &amp; clear EveryPrefDir &amp; PrefDir4MultiMap. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14091">14091</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ab79dc3f93a471d2182ce625fcac1ff2d_cgraph.svg" width="631" height="340"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 2 -->
</div>
</div>

</div>
</div>
<a id="ab8c8ad293f45948986903a05302b2dc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8c8ad293f45948986903a05302b2dc8">&#9670;&nbsp;</a></span>CheckPrefDirAgainstTrackVectorNoMessage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::CheckPrefDirAgainstTrackVectorNoMessage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check loaded PrefDir against loaded track, and if discrepancies found clear EveryPrefDir &amp; PrefDir4MultiMap, messages are given by the calling routine. Return true for OK. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14147">14147</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ab8c8ad293f45948986903a05302b2dc8_cgraph.svg" width="660" height="284"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ab8c8ad293f45948986903a05302b2dc8_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="ad2e6adb7b634b17cab9cd03610a0f8e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2e6adb7b634b17cab9cd03610a0f8e3">&#9670;&nbsp;</a></span>ClearPrefDir()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::ClearPrefDir </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Empty the existing vectors &amp; map. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01353">1353</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 3 -->
</div>
</div>

</div>
</div>
<a id="a65df51092983945e1fe3c20bf8917a39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65df51092983945e1fe3c20bf8917a39">&#9670;&nbsp;</a></span>ConsolidatePrefDirs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::ConsolidatePrefDirs </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_one_pref_dir.html">TOnePrefDir</a> *&#160;</td>
          <td class="paramname"><em>InputPrefDir</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used when a preferred direction has been set to add all the elements to EveryPrefDir, except when they already exist in EveryPrefDir. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13994">13994</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a65df51092983945e1fe3c20bf8917a39_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a65df51092983945e1fe3c20bf8917a39_icgraph.svg" width="414" height="118"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<a id="a482d1c69a674eec4db0190b78659c495"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a482d1c69a674eec4db0190b78659c495">&#9670;&nbsp;</a></span>ConvertPrefDirSearchVector()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::ConvertPrefDirSearchVector </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Called after a successful search to add the elements from the search vector to the pref dir vector. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13077">13077</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a482d1c69a674eec4db0190b78659c495_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a482d1c69a674eec4db0190b78659c495_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a056c475541b487ce13cb34dc43b1cf6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a056c475541b487ce13cb34dc43b1cf6f">&#9670;&nbsp;</a></span>DecrementPrefDirElementNumbersInPrefDir4MultiMap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::DecrementPrefDirElementNumbersInPrefDir4MultiMap </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>ErasedElementNumber</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Called after ErasePrefDirElementAt to decrement the remaining PrefDirElementNumbers in 4MultiMap if they are greater than the erased value. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14601">14601</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a056c475541b487ce13cb34dc43b1cf6f_cgraph.svg" width="452" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 4 -->
</div>
</div>

</div>
</div>
<a id="a7b81a1377e6269aafad6c25c929b2852"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b81a1377e6269aafad6c25c929b2852">&#9670;&nbsp;</a></span>EndPossible()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::EndPossible </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>LeadingPoints</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used when setting preferred directions, true if able to finish at the last selected element (can't finish if there is only one element or if end on leading points) </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13216">13216</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a7b81a1377e6269aafad6c25c929b2852_cgraph.svg" width="600" height="92"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a7b81a1377e6269aafad6c25c929b2852_icgraph.svg" width="100%" height="476"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a8042c0e2fd7f9e39c3ca2a7bff7c68a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8042c0e2fd7f9e39c3ca2a7bff7c68a4">&#9670;&nbsp;</a></span>EraseFromPrefDirVectorAnd4MultiMap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::EraseFromPrefDirVectorAnd4MultiMap </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>HLoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>VLoc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Erase element at HLoc and VLoc from the PrefDirVector and from the 4MultiMap. Note that this entails erasing up to four elements (2 directions and 2 tracks for 4-entry elements). </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13896">13896</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a8042c0e2fd7f9e39c3ca2a7bff7c68a4_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a8042c0e2fd7f9e39c3ca2a7bff7c68a4_icgraph.svg" width="100%" height="388"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="aa191ffa7fa23838043d34d9b02cd7bcb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa191ffa7fa23838043d34d9b02cd7bcb">&#9670;&nbsp;</a></span>ErasePrefDirElementAt()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::ErasePrefDirElementAt </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>PrefDirVectorPosition</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Erase a single element from PrefDirVector and 4MultiMap, decrementing the remaining PrefDirElementNumbers in 4MultiMap if they are greater than the erased value. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14575">14575</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_aa191ffa7fa23838043d34d9b02cd7bcb_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 5 -->
</div>
</div>

</div>
</div>
<a id="a9b425a3ed8ef998e2366d13ad52bf08c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b425a3ed8ef998e2366d13ad52bf08c">&#9670;&nbsp;</a></span>EveryPrefDirMarker()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::EveryPrefDirMarker </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_display.html">TDisplay</a> *&#160;</td>
          <td class="paramname"><em>Disp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Similar to PrefDirMarker but used only to display EveryPrefDir - red for unidirectional PrefDir &amp; green for bidirectional. Colours taken from the route colours. Plot red first so green overwrites for bidirectional points. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13501">13501</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a9b425a3ed8ef998e2366d13ad52bf08c_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 6 -->
</div>
</div>

</div>
</div>
<a id="abc09de3c32460a73d3de12625329210d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc09de3c32460a73d3de12625329210d">&#9670;&nbsp;</a></span>ExternalClearPrefDirAnd4MultiMap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::ExternalClearPrefDirAnd4MultiMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Empty the existing preferred direction vector &amp; map - for use by other classes. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01432">1432</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_abc09de3c32460a73d3de12625329210d_cgraph.svg" width="407" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 7 -->
</div>
</div>

</div>
</div>
<a id="a5e8d14c19c70cafe968e7481b116a714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e8d14c19c70cafe968e7481b116a714">&#9670;&nbsp;</a></span>ExternalStorePrefDirElement()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::ExternalStorePrefDirElement </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a>&#160;</td>
          <td class="paramname"><em>LoadPrefDirElement</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Store a single pref dir element in the vector &amp; map - used by other classes. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01475">1475</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a5e8d14c19c70cafe968e7481b116a714_cgraph.svg" width="100%" height="434"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 8 -->
</div>
</div>

</div>
</div>
<a id="a54e50116bec37610fcb000bc21189471"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54e50116bec37610fcb000bc21189471">&#9670;&nbsp;</a></span>FindLinkingCompatiblePrefDir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::FindLinkingCompatiblePrefDir </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>PrefDirVectorNumber</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>LinkNumberPos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>LinkNumber</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>LinkedPrefDirVectorNumber</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Finds a pref dir element that is compatible and links to another element at given vector number and link number &amp; position, returns true if found with linked vector number, true if buffer or continuation with link at blank end &amp; linked vector number = -1, or false if not found with vector number == -1. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14402">14402</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a54e50116bec37610fcb000bc21189471_cgraph.svg" width="634" height="152"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<a id="abe7f6088b7563714522882c10f6ae7f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe7f6088b7563714522882c10f6ae7f6">&#9670;&nbsp;</a></span>FindLinkingPrefDir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::FindLinkingPrefDir </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>PrefDirVectorNumber</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>LinkNumberPos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>LinkNumber</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>LinkedPrefDirVectorNumber</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Finds a pref dir element that links to another element at given vector number and link number &amp; position, returns true if found with linked vector number, true if buffer or continuation with link at blank end &amp; linked vector number = -1, or false if not found with vector number == -1. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14304">14304</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_abe7f6088b7563714522882c10f6ae7f6_cgraph.svg" width="634" height="152"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<a id="a8bc65b139325c45b57a9f43a9b3404a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8bc65b139325c45b57a9f43a9b3404a8">&#9670;&nbsp;</a></span>GetExactMatchFrom4MultiMap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t_one_pref_dir.html#a37efac41fc00465b0569704517233d4e">TOnePrefDir::TPrefDir4MultiMapIterator</a> TOnePrefDir::GetExactMatchFrom4MultiMap </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>PrefDirVectorPosition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>FoundFlag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Retrieves a PrefDir4MultiMap iterator to the PrefDir element at PrefDirVectorPosition. Used during ErasePrefDirElementAt to erase the relevant element in the multimap. If nothing is found this is an error but the error message is given in the calling function. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14624">14624</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a8bc65b139325c45b57a9f43a9b3404a8_cgraph.svg" width="620" height="92"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 9 -->
</div>
</div>

</div>
</div>
<a id="a5b67e5aaa86d324229aedc68f32f32b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b67e5aaa86d324229aedc68f32f32b8">&#9670;&nbsp;</a></span>GetFixedPrefDirElementAt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp; TOnePrefDir::GetFixedPrefDirElementAt </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>At</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a non-modifiable element at PrefDirVector position 'At'. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l12547">12547</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a5b67e5aaa86d324229aedc68f32f32b8_cgraph.svg" width="382" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 10 -->
</div>
</div>

</div>
</div>
<a id="a11543812cef66a28f4747fb3f8f33f47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11543812cef66a28f4747fb3f8f33f47">&#9670;&nbsp;</a></span>GetFixedSearchElementAt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp; TOnePrefDir::GetFixedSearchElementAt </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>At</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a non-modifiable element at SearchVector position 'At'. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l12572">12572</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a11543812cef66a28f4747fb3f8f33f47_cgraph.svg" width="400" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a11543812cef66a28f4747fb3f8f33f47_icgraph.svg" width="100%" height="486"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="af5a2c955fa9c2584c683accbacb15f4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5a2c955fa9c2584c683accbacb15f4c">&#9670;&nbsp;</a></span>GetModifiablePrefDirElementAt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp; TOnePrefDir::GetModifiablePrefDirElementAt </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>At</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a modifiable element at PrefDirVector position 'At'. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l12559">12559</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_af5a2c955fa9c2584c683accbacb15f4c_cgraph.svg" width="384" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_af5a2c955fa9c2584c683accbacb15f4c_icgraph.svg" width="448" height="170"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<a id="a6724a8304760eb6107bddc60a269595b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6724a8304760eb6107bddc60a269595b">&#9670;&nbsp;</a></span>GetModifiableSearchElementAt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp; TOnePrefDir::GetModifiableSearchElementAt </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>At</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a modifiable element at SearchVector position 'At'. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l12584">12584</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a6724a8304760eb6107bddc60a269595b_cgraph.svg" width="384" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a6724a8304760eb6107bddc60a269595b_icgraph.svg" width="100%" height="454"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a06cd3491535362fccbba4e76b9a120e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06cd3491535362fccbba4e76b9a120e9">&#9670;&nbsp;</a></span>GetNextPrefDirElement()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::GetNextPrefDirElement </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>HLoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>VLoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>FinishElement</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used when continuing a chain of preferred directions or element lengths. Tries to find a set of linked tracks between the last selected element and the one at HLoc &amp; VLoc, and returns true if it finds one. FinishElement is returned true if the element selected is a buffer or continuation - in which case the chain is complete. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l12638">12638</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a06cd3491535362fccbba4e76b9a120e9_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a06cd3491535362fccbba4e76b9a120e9_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a200fd1dc1cffc400160b8d2147278752"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a200fd1dc1cffc400160b8d2147278752">&#9670;&nbsp;</a></span>GetOnePrefDirPosition()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int TOnePrefDir::GetOnePrefDirPosition </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>HLoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>VLoc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Although there may be up to four entries at one H &amp; V position this function gets just one. It is used in EraseFromPrefDirVectorAnd4MultiMap by being called as many times as there are PrefDir elements at H &amp; V. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14701">14701</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a200fd1dc1cffc400160b8d2147278752_cgraph.svg" width="390" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a200fd1dc1cffc400160b8d2147278752_icgraph.svg" width="100%" height="388"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="ace0402792492c9da2551423f8287e41e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace0402792492c9da2551423f8287e41e">&#9670;&nbsp;</a></span>GetPrefDirStartElement()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::GetPrefDirStartElement </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>HLoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>VLoc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used when beginning a chain of preferred directions or element lengths. Enter with HLoc &amp; VLoc set to selected element &amp; check if selected element is a valid track element, return false if not, if it is, store it as the first entry in PrefDirVector and return true. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l12596">12596</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ace0402792492c9da2551423f8287e41e_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ace0402792492c9da2551423f8287e41e_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a8fd55282096fe63f0baeab323c6ccc8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fd55282096fe63f0baeab323c6ccc8b">&#9670;&nbsp;</a></span>GetPrefDirTruncateElement()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::GetPrefDirTruncateElement </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>HLoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>VLoc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Called during PrefDir build or distance setting. It truncates at &amp; including the first element in the PrefDir vector that matches H &amp; V. After the truncate the final element of the remaining PrefDir has its data members reset to the same defaults as would be the case if the PrefDir had been built up to that point - i.e. for first element or a leading point. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13370">13370</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a8fd55282096fe63f0baeab323c6ccc8b_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a8fd55282096fe63f0baeab323c6ccc8b_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a0acdc81183b894d1d6aecb5f563efefc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0acdc81183b894d1d6aecb5f563efefc">&#9670;&nbsp;</a></span>GetStartAndEndPrefDirElements()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::GetStartAndEndPrefDirElements </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp;&#160;</td>
          <td class="paramname"><em>StartElement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a> &amp;&#160;</td>
          <td class="paramname"><em>EndElement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>LastIteratorValue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Called when searching for start and end PrefDirElements when setting up automatic signals routes in PreStart mode. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l15224">15224</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a0acdc81183b894d1d6aecb5f563efefc_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a0acdc81183b894d1d6aecb5f563efefc_icgraph.svg" width="402" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<a id="a820f6cc109de519289e6a63dac835ebc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a820f6cc109de519289e6a63dac835ebc">&#9670;&nbsp;</a></span>GetVectorPositionsFromPrefDir4MultiMap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::GetVectorPositionsFromPrefDir4MultiMap </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>HLoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>VLoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>FoundFlag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>PrefDirPos0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>PrefDirPos1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>PrefDirPos2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>PrefDirPos3</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return up to 4 vector positions for a given HLoc &amp; VLoc; unused values return -1. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14235">14235</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a820f6cc109de519289e6a63dac835ebc_cgraph.svg" width="419" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 11 -->
</div>
</div>

</div>
</div>
<a id="a26a1ee9d1ced0d53e35936097d4896f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26a1ee9d1ced0d53e35936097d4896f0">&#9670;&nbsp;</a></span>LastElementNumber()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TOnePrefDir::LastElementNumber </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the vector position of the last element in the vector (i.e. one less than the vector size) </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l12519">12519</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a26a1ee9d1ced0d53e35936097d4896f0_cgraph.svg" width="379" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 12 -->
</div>
</div>

</div>
</div>
<a id="a42862b2abcd0eb356982f4ce46922922"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42862b2abcd0eb356982f4ce46922922">&#9670;&nbsp;</a></span>LastElementPtr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t_one_pref_dir.html#a8a905cfdce2439be93d45b66339b7382">TOnePrefDir::TPrefDirVectorIterator</a> TOnePrefDir::LastElementPtr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a pointer to the last element in the vector. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l12533">12533</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a42862b2abcd0eb356982f4ce46922922_cgraph.svg" width="396" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 13 -->
</div>
</div>

</div>
</div>
<a id="a614933ff3958e4b8c9be9bc78159d9e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a614933ff3958e4b8c9be9bc78159d9e8">&#9670;&nbsp;</a></span>LoadOldPrefDir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::LoadOldPrefDir </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::ifstream &amp;&#160;</td>
          <td class="paramname"><em>VecFile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Old version of LoadPrefDir, used during development when the save format changed so the old files could be loaded prior to resaving in the new format. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13634">13634</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a614933ff3958e4b8c9be9bc78159d9e8_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a0779c9edd1ba268356590aac4719166d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0779c9edd1ba268356590aac4719166d">&#9670;&nbsp;</a></span>LoadPrefDir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::LoadPrefDir </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::ifstream &amp;&#160;</td>
          <td class="paramname"><em>VecFile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load a vector and map of preferred directions from the file. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13683">13683</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a0779c9edd1ba268356590aac4719166d_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a0779c9edd1ba268356590aac4719166d_icgraph.svg" width="100%" height="394"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="aef8388386635d73a921fae7ce43f5214"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef8388386635d73a921fae7ce43f5214">&#9670;&nbsp;</a></span>PrefDirMarker()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::PrefDirMarker </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="_track_unit_8h.html#af43def3247611f36d741e6324ea85d14">TPrefDirRoute</a>&#160;</td>
          <td class="paramname"><em>PrefDirRoute</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>BuildingPrefDir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_display.html">TDisplay</a> *&#160;</td>
          <td class="paramname"><em>Disp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PrefDir and route track display function, including direction markers. </p>
<p>Function used for both PrefDirs (PrefDirRoute == PrefDirCall) and routes (PrefDirRoute == RouteCall). The graphics for marker colours and direction are already stored in all PrefDirElements in <a class="el" href="class_t_one_pref_dir.html" title="The basic preferred direction class, consisting of any number of elements with preferred directions s...">TOnePrefDir</a> and <a class="el" href="class_t_one_route.html" title="A descendent of TOnePrefDir used for routes. Used during contruction of a route (ConstructRoute) and ...">TOneRoute</a>, and this function is called to display them, all in the case of a PrefDir, but for a route only the first and last elements have direction markers. No markers are displayed if a train is present on an element. Also no display if EXGraphicPtr not set. If building a PrefDir (BuildingPrefDir true) then the start and end rectangles are also displayed. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13428">13428</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_aef8388386635d73a921fae7ce43f5214_cgraph.svg" width="384" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 14 -->
</div>
</div>

</div>
</div>
<a id="a29d013bf730e23d27fdb2c390e3a14da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29d013bf730e23d27fdb2c390e3a14da">&#9670;&nbsp;</a></span>PrefDirSize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int TOnePrefDir::PrefDirSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the vector size. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01420">1420</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 15 -->
</div>
</div>

</div>
</div>
<a id="ae0e03d494164fe961da51b0be8492934"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0e03d494164fe961da51b0be8492934">&#9670;&nbsp;</a></span>PresetAutoRouteDiagonalFouledByTrack()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::PresetAutoRouteDiagonalFouledByTrack </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a>&#160;</td>
          <td class="paramname"><em>ElementIn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>XLink</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Called by GetStartAndEndPrefDirElements... </p>
<p>which in turn is called by PresetAutoSigRoutesButtonClick. Checks for a diagonal link in the autosigsroute being fouled by an adjacent track with a corresponding link that meets at the diagonal link, and if it is it returns true and prevents the route being set. Note that adjacent track consisting of buffers, gaps and continuations at the diagonal link are also excluded though they need not be, but it makes the check code simpler and such adjacent track is untidy and can be modelled better anyway. Added at v2.1.0. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l15095">15095</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ae0e03d494164fe961da51b0be8492934_cgraph.svg" width="627" height="147"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ae0e03d494164fe961da51b0be8492934_icgraph.svg" width="648" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<a id="ab35c683ba0ec156d19d4db991046b7d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab35c683ba0ec156d19d4db991046b7d2">&#9670;&nbsp;</a></span>PresetAutoRouteElementValid()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::PresetAutoRouteElementValid </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a>&#160;</td>
          <td class="paramname"><em>ElementIn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>EntryPos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Checks ElementIn and returns true only if a single prefdir set at that H&amp;V, with EntryPos giving entry position, not points, crossovers, signals with wrong direction set, or buffers. Added at v1.2.0. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14994">14994</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ab35c683ba0ec156d19d4db991046b7d2_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ab35c683ba0ec156d19d4db991046b7d2_icgraph.svg" width="648" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<a id="ab5bb3791670fd04645faf4ab1f2a5781"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5bb3791670fd04645faf4ab1f2a5781">&#9670;&nbsp;</a></span>RealignAfterTrackErase()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::RealignAfterTrackErase </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ErasedTrackVectorPosition</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>After a track element is erased the preferred direction elements are likely to be affected. This function erases any preferred direction elements that either correspond to the erased track element, or were linked to it. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14730">14730</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ab5bb3791670fd04645faf4ab1f2a5781_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 16 -->
</div>
</div>

</div>
</div>
<a id="a1e62c2571d3629a067e1071086de72de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e62c2571d3629a067e1071086de72de">&#9670;&nbsp;</a></span>RebuildPrefDirVector()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::RebuildPrefDirVector </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Called after the track vector has been rebuilt following linking, to rebuild the preferred direction vector to correspond to the element positions in the rebuilt track vector. Doesn't affect the preferred direction multimap. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14051">14051</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a1e62c2571d3629a067e1071086de72de_cgraph.svg" width="595" height="147"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a1e62c2571d3629a067e1071086de72de_icgraph.svg" width="400" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<a id="a3d115535b2e2d2ea05e210997a3f525c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d115535b2e2d2ea05e210997a3f525c">&#9670;&nbsp;</a></span>SavePrefDirVector()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::SavePrefDirVector </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::ofstream &amp;&#160;</td>
          <td class="paramname"><em>VecFile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save the preferred direction vector to a file. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13830">13830</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 17 -->
</div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 18 -->
</div>
</div>

</div>
</div>
<a id="a8871c609a1586aa9c4f723afaccd2502"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8871c609a1586aa9c4f723afaccd2502">&#9670;&nbsp;</a></span>SaveSearchVector()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::SaveSearchVector </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::ofstream &amp;&#160;</td>
          <td class="paramname"><em>VecFile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save the search vector to a file. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13863">13863</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 19 -->
</div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 20 -->
</div>
</div>

</div>
</div>
<a id="a82c6a19d67ada7059491afae05ced4a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82c6a19d67ada7059491afae05ced4a4">&#9670;&nbsp;</a></span>SearchForPrefDir()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::SearchForPrefDir </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_track_element.html">TTrackElement</a>&#160;</td>
          <td class="paramname"><em>TrackElement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>XLinkPos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>RequiredPosition</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Try to find a selected element from a given start position. Enter with CurrentTrackElement stored in the PrefDirVector, XLinkPos set to the link to search on, &amp; SearchVector cleared unless entered recursively. Function is a continuous loop that exits when find required element (returns true) or reaches a buffer or continuation or otherwise fails a search condition (returns false). </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l12878">12878</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a82c6a19d67ada7059491afae05ced4a4_cgraph.svg" width="623" height="148"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a82c6a19d67ada7059491afae05ced4a4_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="a7a7fb4b5ae1ed73c9a989d21980d5b54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a7fb4b5ae1ed73c9a989d21980d5b54">&#9670;&nbsp;</a></span>SearchVectorSize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int TOnePrefDir::SearchVectorSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the vector size. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01426">1426</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a7a7fb4b5ae1ed73c9a989d21980d5b54_icgraph.svg" width="100%" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="ac5f8d2864f0510cf73cb9883b520ec9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5f8d2864f0510cf73cb9883b520ec9f">&#9670;&nbsp;</a></span>StorePrefDirElement()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::StorePrefDirElement </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_t_pref_dir_element.html">TPrefDirElement</a>&#160;</td>
          <td class="paramname"><em>LoadPrefDirElement</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Store a single pref dir element in the vector &amp; map. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14554">14554</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_ac5f8d2864f0510cf73cb9883b520ec9f_cgraph.svg" width="608" height="179"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 21 -->
</div>
</div>

</div>
</div>
<a id="a2b883633382e26cdff4583a24575d337"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b883633382e26cdff4583a24575d337">&#9670;&nbsp;</a></span>ValidatePrefDir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool TOnePrefDir::ValidatePrefDir </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks that all elements in PrefDirVector have been properly set, i.e. don't have their default values, and that every element is connected to the next element. </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l13259">13259</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a2b883633382e26cdff4583a24575d337_cgraph.svg" width="392" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_a2b883633382e26cdff4583a24575d337_icgraph.svg" width="100%" height="486"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>

</div>
</div>
<a id="af87440e0ace47b20c8a874c51b314064"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af87440e0ace47b20c8a874c51b314064">&#9670;&nbsp;</a></span>WritePrefDirToImage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TOnePrefDir::WritePrefDirToImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Caller</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Graphics::TBitmap *&#160;</td>
          <td class="paramname"><em>Bitmap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used when creating a bitmap image to display preferred directions (as on screen during 'Set preferred direction' mode) </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8cpp_source.html#l14864">14864</a> of file <a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_af87440e0ace47b20c8a874c51b314064_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_t_one_pref_dir_af87440e0ace47b20c8a874c51b314064_icgraph.svg" width="402" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aa6738f8f24fe0a417a84388c049b5e4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa6738f8f24fe0a417a84388c049b5e4c">&#9670;&nbsp;</a></span>PrefDir4MultiMap</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_t_one_pref_dir.html#a940ba2bdbedb288c8188c1da5c4c79bc">TPrefDir4MultiMap</a> TOnePrefDir::PrefDir4MultiMap</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>the pref dir multimap - up to 4 values (up to 2 tracks per element each with 2 directions) </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01346">1346</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="a9fc8032fb9c525951620e7aafa067d45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9fc8032fb9c525951620e7aafa067d45">&#9670;&nbsp;</a></span>PrefDirSearchLimit</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const int TOnePrefDir::PrefDirSearchLimit = 30000</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>limit to the number of elements searched in attempting to find a preferred direction </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01375">1375</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="ab2da871d689df7e78f430c5d354bb953"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2da871d689df7e78f430c5d354bb953">&#9670;&nbsp;</a></span>PrefDirVector</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_track_unit_8h.html#a79394e04a2435f7300aad79c757ae2ce">TPrefDirVector</a> TOnePrefDir::PrefDirVector</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01414">1414</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="a68677f0598c54c3e6e3c27075b23aa14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68677f0598c54c3e6e3c27075b23aa14">&#9670;&nbsp;</a></span>SearchLimitHighH</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int TOnePrefDir::SearchLimitHighH</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01383">1383</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="a2665c08fe2a230db10ded6e78975bc13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2665c08fe2a230db10ded6e78975bc13">&#9670;&nbsp;</a></span>SearchLimitHighV</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int TOnePrefDir::SearchLimitHighV</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01385">1385</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="af33d48762fe2b104b75fca9a97d96252"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af33d48762fe2b104b75fca9a97d96252">&#9670;&nbsp;</a></span>SearchLimitLowH</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int TOnePrefDir::SearchLimitLowH</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01382">1382</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="aa469479759bd4379bee3f938ad8bfd90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa469479759bd4379bee3f938ad8bfd90">&#9670;&nbsp;</a></span>SearchLimitLowV</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int TOnePrefDir::SearchLimitLowV</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01384">1384</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="a2d035366a044fc7d0e0a745762bd4664"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d035366a044fc7d0e0a745762bd4664">&#9670;&nbsp;</a></span>SearchVector</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_track_unit_8h.html#a79394e04a2435f7300aad79c757ae2ce">TPrefDirVector</a> TOnePrefDir::SearchVector</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>pref dir vectors, first is the main vector, second used to store search elements temporarily </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01414">1414</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<a id="a8e982d8317ce1579b143adf74d88d692"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e982d8317ce1579b143adf74d88d692">&#9670;&nbsp;</a></span>TotalSearchCount</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int TOnePrefDir::TotalSearchCount</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>counts search elements, used to abort searches (prefdirs or routes) if reaches too high a value </p>

<p class="definition">Definition at line <a class="el" href="_track_unit_8h_source.html#l01387">1387</a> of file <a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_track_unit_8h_source.html">TrackUnit.h</a></li>
<li><a class="el" href="_track_unit_8cpp_source.html">TrackUnit.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="class_t_one_pref_dir.html">TOnePrefDir</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
  </ul>
</div>
</body>
</html>
